39#ifdef PREINIT_SUPPORTED
43#ifdef MikroCCoreVersion
44 #if MikroCCoreVersion >= 1
49#include "drv_digital_out.h"
50#include "drv_digital_in.h"
51#include "drv_i2c_master.h"
73#define CHARGER30_REG_INPUT_CURRENT_LIMIT 0x00
74#define CHARGER30_REG_INPUT_VOLTAGE_REG 0x01
75#define CHARGER30_REG_NTC_CONFIG_THERMAL_REG 0x02
76#define CHARGER30_REG_ADC_CTRL_OTG_CONFIG 0x03
77#define CHARGER30_REG_CHARGE_CTRL_VSYS_CONFIG 0x04
78#define CHARGER30_REG_CHARGE_CURRENT_CONFIG 0x05
79#define CHARGER30_REG_PRE_CHARGE_TERM_CURRENT 0x06
80#define CHARGER30_REG_CHARGE_VOLTAGE_REG 0x07
81#define CHARGER30_REG_TIMER_CONFIG 0x08
82#define CHARGER30_REG_BANDGAP 0x09
83#define CHARGER30_REG_BATFET_CONFIG 0x0A
84#define CHARGER30_REG_INT_MASK_USB_DETECTION 0x0B
85#define CHARGER30_REG_STATUS 0x0C
86#define CHARGER30_REG_FAULT 0x0D
87#define CHARGER30_REG_BATTERY_VOLTAGE_ADC 0x0E
88#define CHARGER30_REG_SYSTEM_VOLTAGE_ADC 0x0F
89#define CHARGER30_REG_NTC_VOLTAGE_ADC 0x10
90#define CHARGER30_REG_INPUT_VOLTAGE_ADC 0x11
91#define CHARGER30_REG_CHARGE_CURRENT_ADC 0x12
92#define CHARGER30_REG_INPUT_CURRENT_ADC 0x13
93#define CHARGER30_REG_POWER_MANAGEMENT_STATUS 0x14
94#define CHARGER30_REG_DPM_MASK 0x15
95#define CHARGER30_REG_JEITA_CONFIG 0x16
96#define CHARGER30_REG_SAFETY_TIMER_STATUS_PART_NUM 0x17
114#define CHARGER30_ICL_EN_HIZ_DISABLE 0x00
115#define CHARGER30_ICL_EN_HIZ_ENABLE 0x80
116#define CHARGER30_ICL_EN_HIZ_MASK 0x80
117#define CHARGER30_ICL_EN_LIM_DISABLE 0x00
118#define CHARGER30_ICL_EN_LIM_ENABLE 0x40
119#define CHARGER30_ICL_EN_LIM_MASK 0x40
120#define CHARGER30_ICL_IIN_LIM_MASK 0x3F
121#define CHARGER30_ICL_IIN_LIM_MA_RES 50
122#define CHARGER30_ICL_IIN_LIM_MA_OFFSET 100
123#define CHARGER30_ICL_IIN_LIM_MA_MIN 100
124#define CHARGER30_ICL_IIN_LIM_MA_DEFAULT 500
125#define CHARGER30_ICL_IIN_LIM_MA_MAX 3250
126#define CHARGER30_ICL_IIN_LIM_MA(x) ( ( ( x - CHARGER30_ICL_IIN_LIM_MA_OFFSET ) / \
127 CHARGER30_ICL_IIN_LIM_MA_RES ) & CHARGER30_ICL_IIN_LIM_MASK )
133#define CHARGER30_IVR_REG_RESET_KEEP 0x00
134#define CHARGER30_IVR_REG_RESET_RESET 0x80
135#define CHARGER30_IVR_REG_RESET_MASK 0x80
136#define CHARGER30_IVR_VIN_MIN_MASK 0x7F
137#define CHARGER30_IVR_VIN_MIN_MV_RES 100
138#define CHARGER30_IVR_VIN_MIN_MV_OFFSET 3700
139#define CHARGER30_IVR_VIN_MIN_MV_MIN 3700
140#define CHARGER30_IVR_VIN_MIN_MV_DEFAULT 4300
141#define CHARGER30_IVR_VIN_MIN_MV_MAX 15200
142#define CHARGER30_IVR_VIN_MIN_MV(x) ( ( ( x - CHARGER30_IVR_VIN_MIN_MV_OFFSET ) / \
143 CHARGER30_IVR_VIN_MIN_MV_RES ) & CHARGER30_IVR_VIN_MIN_MASK )
149#define CHARGER30_NCTR_TSM_DLY_NO_DELAY 0x00
150#define CHARGER30_NCTR_TSM_DLY_10S 0x80
151#define CHARGER30_NCTR_TSM_DLY_MASK 0x80
152#define CHARGER30_NCTR_NTC_TYPE_STANDARD 0x00
153#define CHARGER30_NCTR_NTC_TYPE_JEITA 0x40
154#define CHARGER30_NCTR_NTC_TYPE_MASK 0x40
155#define CHARGER30_NCTR_EN_OTG_NTC_DISABLE 0x00
156#define CHARGER30_NCTR_EN_OTG_NTC_ENABLE 0x20
157#define CHARGER30_NCTR_EN_OTG_NTC_MASK 0x20
158#define CHARGER30_NCTR_EN_CHG_NTC_DISABLE 0x00
159#define CHARGER30_NCTR_EN_CHG_NTC_ENABLE 0x10
160#define CHARGER30_NCTR_EN_CHG_NTC_MASK 0x10
161#define CHARGER30_NCTR_TJ_REG_60C 0x00
162#define CHARGER30_NCTR_TJ_REG_80C 0x04
163#define CHARGER30_NCTR_TJ_REG_100C 0x08
164#define CHARGER30_NCTR_TJ_REG_120C 0x0C
165#define CHARGER30_NCTR_TJ_REG_MASK 0x0C
166#define CHARGER30_NCTR_NTC_OPT_BATTERY 0x00
167#define CHARGER30_NCTR_NTC_OPT_PCB 0x02
168#define CHARGER30_NCTR_NTC_OPT_MASK 0x02
169#define CHARGER30_NCTR_AICO_EN_DISABLE 0x00
170#define CHARGER30_NCTR_AICO_EN_ENABLE 0x01
171#define CHARGER30_NCTR_AICO_EN_MASK 0x01
177#define CHARGER30_ACOC_ADC_START_DISABLE 0x00
178#define CHARGER30_ACOC_ADC_START_ENABLE 0x80
179#define CHARGER30_ACOC_ADC_START_MASK 0x80
180#define CHARGER30_ACOC_ADC_RATE_ONE_SHOT 0x00
181#define CHARGER30_ACOC_ADC_RATE_CONTINUOUS 0x40
182#define CHARGER30_ACOC_ADC_RATE_MASK 0x40
183#define CHARGER30_ACOC_VIN_DSCHG_4800MV 0x00
184#define CHARGER30_ACOC_VIN_DSCHG_4900MV 0x08
185#define CHARGER30_ACOC_VIN_DSCHG_5000MV 0x10
186#define CHARGER30_ACOC_VIN_DSCHG_5100MV 0x18
187#define CHARGER30_ACOC_VIN_DSCHG_5200MV 0x20
188#define CHARGER30_ACOC_VIN_DSCHG_5300MV 0x28
189#define CHARGER30_ACOC_VIN_DSCHG_5400MV 0x30
190#define CHARGER30_ACOC_VIN_DSCHG_5500MV 0x38
191#define CHARGER30_ACOC_VIN_DSCHG_MASK 0x38
192#define CHARGER30_ACOC_IIN_DSCHG_500MA 0x00
193#define CHARGER30_ACOC_IIN_DSCHG_800MA 0x01
194#define CHARGER30_ACOC_IIN_DSCHG_1100MA 0x02
195#define CHARGER30_ACOC_IIN_DSCHG_1500MA 0x03
196#define CHARGER30_ACOC_IIN_DSCHG_1800MA 0x04
197#define CHARGER30_ACOC_IIN_DSCHG_2100MA 0x05
198#define CHARGER30_ACOC_IIN_DSCHG_2400MA 0x06
199#define CHARGER30_ACOC_IIN_DSCHG_3000MA 0x07
200#define CHARGER30_ACOC_IIN_DSCHG_MASK 0x07
206#define CHARGER30_CCVC_BAT_LOADEN_DISABLE 0x00
207#define CHARGER30_CCVC_BAT_LOADEN_ENABLE 0x80
208#define CHARGER30_CCVC_BAT_LOADEN_MASK 0x80
209#define CHARGER30_CCVC_STAT_EN_DISABLE 0x00
210#define CHARGER30_CCVC_STAT_EN_ENABLE 0x40
211#define CHARGER30_CCVC_STAT_EN_MASK 0x40
212#define CHARGER30_CCVC_CHG_CONFIG_CHARGE_DISABLE 0x00
213#define CHARGER30_CCVC_CHG_CONFIG_CHARGE_ENABLE 0x10
214#define CHARGER30_CCVC_CHG_CONFIG_OTG 0x30
215#define CHARGER30_CCVC_CHG_CONFIG_MASK 0x30
216#define CHARGER30_CCVC_VSYS_MIN_3000MV 0x00
217#define CHARGER30_CCVC_VSYS_MIN_3150MV 0x02
218#define CHARGER30_CCVC_VSYS_MIN_3300MV 0x04
219#define CHARGER30_CCVC_VSYS_MIN_3450MV 0x06
220#define CHARGER30_CCVC_VSYS_MIN_3525MV 0x08
221#define CHARGER30_CCVC_VSYS_MIN_3600MV 0x0A
222#define CHARGER30_CCVC_VSYS_MIN_3675MV 0x0C
223#define CHARGER30_CCVC_VSYS_MIN_3750MV 0x0E
224#define CHARGER30_CCVC_VSYS_MIN_MASK 0x0E
225#define CHARGER30_CCVC_VTRACK_100MV 0x00
226#define CHARGER30_CCVC_VTRACK_150MV 0x01
227#define CHARGER30_CCVC_VTRACK_MASK 0x01
233#define CHARGER30_CCC_VBATT_PRE_2800MV 0x00
234#define CHARGER30_CCC_VBATT_PRE_3000MV 0x80
235#define CHARGER30_CCC_VBATT_PRE_MASK 0x80
236#define CHARGER30_CCC_ICC_MASK 0x7F
237#define CHARGER30_CCC_ICC_MA_RES 40
238#define CHARGER30_CCC_ICC_MA_OFFSET 320
239#define CHARGER30_CCC_ICC_MA_MIN 320
240#define CHARGER30_CCC_ICC_MA_DEFAULT 1840
241#define CHARGER30_CCC_ICC_MA_MAX 4520
242#define CHARGER30_CCC_ICC_MA(x) ( ( ( x - CHARGER30_CCC_ICC_MA_OFFSET ) / \
243 CHARGER30_CCC_ICC_MA_RES ) & CHARGER30_CCC_ICC_MASK )
249#define CHARGER30_PCTC_IPRE_MASK 0xF0
250#define CHARGER30_PCTC_IPRE_SHIFT 4
251#define CHARGER30_PCTC_IPRE_MA_RES 40
252#define CHARGER30_PCTC_IPRE_MA_OFFSET 150
253#define CHARGER30_PCTC_IPRE_MA_MIN 150
254#define CHARGER30_PCTC_IPRE_MA_DEFAULT 300
255#define CHARGER30_PCTC_IPRE_MA_MAX 750
256#define CHARGER30_PCTC_IPRE_MA(x) ( ( ( ( x - CHARGER30_PCTC_IPRE_MA_OFFSET ) / \
257 CHARGER30_PCTC_IPRE_MA_RES ) << CHARGER30_PCTC_IPRE_SHIFT ) & \
258 CHARGER30_PCTC_IPRE_MASK )
259#define CHARGER30_PCTC_ITERM_MASK 0x0F
260#define CHARGER30_PCTC_ITERM_MA_RES 40
261#define CHARGER30_PCTC_ITERM_MA_OFFSET 120
262#define CHARGER30_PCTC_ITERM_MA_MIN 120
263#define CHARGER30_PCTC_ITERM_MA_DEFAULT 200
264#define CHARGER30_PCTC_ITERM_MA_MAX 720
265#define CHARGER30_PCTC_ITERM_MA(x) ( ( ( x - CHARGER30_PCTC_ITERM_MA_OFFSET ) / \
266 CHARGER30_PCTC_ITERM_MA_RES ) & CHARGER30_PCTC_ITERM_MASK )
272#define CHARGER30_CVR_VBATT_REG_MASK 0xFE
273#define CHARGER30_CVR_VBATT_REG_SHIFT 1
274#define CHARGER30_CVR_VBATT_REG_MV_RES 10
275#define CHARGER30_CVR_VBATT_REG_MV_OFFSET 3400
276#define CHARGER30_CVR_VBATT_REG_MV_MIN 3400
277#define CHARGER30_CVR_VBATT_REG_MV_DEFAULT 4200
278#define CHARGER30_CVR_VBATT_REG_MV_MAX 4670
279#define CHARGER30_CVR_VBATT_REG_MV(x) ( ( ( ( x - CHARGER30_CVR_VBATT_REG_MV_OFFSET ) / \
280 CHARGER30_CVR_VBATT_REG_MV_RES ) << CHARGER30_CVR_VBATT_REG_SHIFT ) & \
281 CHARGER30_CVR_VBATT_REG_MASK )
282#define CHARGER30_CVR_VRECH_100MV 0x00
283#define CHARGER30_CVR_VRECH_200MV 0x01
284#define CHARGER30_CVR_VRECH_MASK 0x01
290#define CHARGER30_TC_EN_TERM_DISABLE 0x00
291#define CHARGER30_TC_EN_TERM_ENABLE 0x80
292#define CHARGER30_TC_EN_TERM_MASK 0x80
293#define CHARGER30_TC_WATCHDOG_DISABLE 0x00
294#define CHARGER30_TC_WATCHDOG_40S 0x10
295#define CHARGER30_TC_WATCHDOG_80S 0x20
296#define CHARGER30_TC_WATCHDOG_160S 0x30
297#define CHARGER30_TC_WATCHDOG_MASK 0x30
298#define CHARGER30_TC_WATCHDOG_RESET_NORMAL 0x00
299#define CHARGER30_TC_WATCHDOG_RESET_RESET 0x08
300#define CHARGER30_TC_WATCHDOG_RESET_MASK 0x08
301#define CHARGER30_TC_CHG_TMR_5HRS 0x00
302#define CHARGER30_TC_CHG_TMR_8HRS 0x02
303#define CHARGER30_TC_CHG_TMR_12HRS 0x04
304#define CHARGER30_TC_CHG_TMR_20HRS 0x06
305#define CHARGER30_TC_CHG_TMR_MASK 0x06
306#define CHARGER30_TC_EN_TIMER_DISABLE 0x00
307#define CHARGER30_TC_EN_TIMER_ENABLE 0x01
308#define CHARGER30_TC_EN_TIMER_MASK 0x01
314#define CHARGER30_BANDGAP_ENABLE 0x00
315#define CHARGER30_BANDGAP_DISABLE 0x08
316#define CHARGER30_BANDGAP_MASK 0x08
322#define CHARGER30_BC_SW_FREQ_1_35MHZ 0x00
323#define CHARGER30_BC_SW_FREQ_1_MHZ 0x80
324#define CHARGER30_BC_SW_FREQ_MASK 0x80
325#define CHARGER30_BC_TMR2X_EN_DISABLE 0x00
326#define CHARGER30_BC_TMR2X_EN_ENABLE 0x40
327#define CHARGER30_BC_TMR2X_EN_MASK 0x40
328#define CHARGER30_BC_BATFET_DIS_ALLOW_ON 0x00
329#define CHARGER30_BC_BATFET_DIS_FORCE_OFF 0x20
330#define CHARGER30_BC_BATFET_DIS_MASK 0x20
331#define CHARGER30_BC_SYSRST_SEL_HW 0x00
332#define CHARGER30_BC_SYSRST_SEL_SW 0x10
333#define CHARGER30_BC_SYSRST_SEL_MASK 0x10
334#define CHARGER30_BC_TDISC_H_0_5S 0x00
335#define CHARGER30_BC_TDISC_H_2S 0x04
336#define CHARGER30_BC_TDISC_H_4S 0x08
337#define CHARGER30_BC_TDISC_H_8S 0x0C
338#define CHARGER30_BC_TDISC_H_MASK 0x0C
339#define CHARGER30_BC_TDISC_L_8S 0x00
340#define CHARGER30_BC_TDISC_L_10S 0x01
341#define CHARGER30_BC_TDISC_L_12S 0x02
342#define CHARGER30_BC_TDISC_L_16S 0x03
343#define CHARGER30_BC_TDISC_L_MASK 0x03
349#define CHARGER30_IMUD_INT_SAFETY_TIMER_DISABLE 0x00
350#define CHARGER30_IMUD_INT_SAFETY_TIMER_ENABLE 0x80
351#define CHARGER30_IMUD_INT_SAFETY_TIMER_MASK 0x80
352#define CHARGER30_IMUD_INT_BAT_FAULT_DISABLE 0x00
353#define CHARGER30_IMUD_INT_BAT_FAULT_ENABLE 0x40
354#define CHARGER30_IMUD_INT_BAT_FAULT_MASK 0x40
355#define CHARGER30_IMUD_USB_DET_EN_DISABLE 0x00
356#define CHARGER30_IMUD_USB_DET_EN_ENABLE 0x20
357#define CHARGER30_IMUD_USB_DET_EN_MASK 0x20
358#define CHARGER30_IMUD_DM_3300MV 0x00
359#define CHARGER30_IMUD_DM_600MV 0x10
360#define CHARGER30_IMUD_DM_MASK 0x10
361#define CHARGER30_IMUD_DP_600MV 0x00
362#define CHARGER30_IMUD_DP_3300MV 0x08
363#define CHARGER30_IMUD_DP_MASK 0x08
364#define CHARGER30_IMUD_USB_FAST_CHG_DP_L_DM_HIZ 0x00
365#define CHARGER30_IMUD_USB_FAST_CHG_DP_H_DM_L 0x02
366#define CHARGER30_IMUD_USB_FAST_CHG_DP_L_DM_L 0x04
367#define CHARGER30_IMUD_USB_FAST_CHG_DP_L_DM_H 0x06
368#define CHARGER30_IMUD_USB_FAST_CHG_MASK 0x06
369#define CHARGER30_IMUD_USB_FAST_CHG_RESET_VDP_SRC 0x00
370#define CHARGER30_IMUD_USB_FAST_CHG_RESET_ZERO 0x01
371#define CHARGER30_IMUD_USB_FAST_CHG_RESET_MASK 0x01
377#define CHARGER30_STATUS_VIN_STAT_NO_INPUT 0x00
378#define CHARGER30_STATUS_VIN_STAT_NONSTANDARD_ADAPT 0x20
379#define CHARGER30_STATUS_VIN_STAT_SDP 0x40
380#define CHARGER30_STATUS_VIN_STAT_CDP 0x60
381#define CHARGER30_STATUS_VIN_STAT_DCP 0x80
382#define CHARGER30_STATUS_VIN_STAT_FAST_CHARGE 0xA0
383#define CHARGER30_STATUS_VIN_STAT_OTG 0xE0
384#define CHARGER30_STATUS_VIN_STAT_MASK 0xE0
385#define CHARGER30_STATUS_CHG_STAT_NOT_CHARGING 0x00
386#define CHARGER30_STATUS_CHG_STAT_TRICKLE_CHARGE 0x08
387#define CHARGER30_STATUS_CHG_STAT_CC_CHARGE 0x10
388#define CHARGER30_STATUS_CHG_STAT_CHARGE_DONE 0x18
389#define CHARGER30_STATUS_CHG_STAT_MASK 0x18
390#define CHARGER30_STATUS_NTC_FLOAT_NO_FLOAT 0x00
391#define CHARGER30_STATUS_NTC_FLOAT_FLOAT 0x04
392#define CHARGER30_STATUS_NTC_FLOAT_MASK 0x04
393#define CHARGER30_STATUS_THERM_STAT_NORMAL 0x00
394#define CHARGER30_STATUS_THERM_STAT_THERMAL_REG 0x02
395#define CHARGER30_STATUS_THERM_STAT_MASK 0x02
396#define CHARGER30_STATUS_VSYS_STAT_IN_REG 0x00
397#define CHARGER30_STATUS_VSYS_STAT_NOT_IN_REG 0x01
398#define CHARGER30_STATUS_VSYS_STAT_MASK 0x01
404#define CHARGER30_FAULT_WATCHDOG 0x80
405#define CHARGER30_FAULT_OTG 0x40
406#define CHARGER30_FAULT_INPUT 0x20
407#define CHARGER30_FAULT_THERMAL_SHUTDOWN 0x10
408#define CHARGER30_FAULT_BAT 0x08
409#define CHARGER30_FAULT_NTC_NORMAL 0x00
410#define CHARGER30_FAULT_NTC_WARM 0x02
411#define CHARGER30_FAULT_NTC_COOL 0x03
412#define CHARGER30_FAULT_NTC_COLD 0x05
413#define CHARGER30_FAULT_NTC_HOT 0x06
414#define CHARGER30_FAULT_NTC_MASK 0x07
420#define CHARGER30_VBAT_ADC_TO_MV_RES 20
421#define CHARGER30_VBAT_ADC_TO_MV(x) ( ( uint16_t ) x * CHARGER30_VBAT_ADC_TO_MV_RES )
427#define CHARGER30_VSYS_ADC_TO_MV_RES 20
428#define CHARGER30_VSYS_ADC_TO_MV(x) ( ( uint16_t ) x * CHARGER30_VSYS_ADC_TO_MV_RES )
434#define CHARGER30_NTC_ADC_TO_PCT_RES 0.392
435#define CHARGER30_NTC_ADC_TO_PCT(x) ( x * CHARGER30_NTC_ADC_TO_PCT_RES )
441#define CHARGER30_VIN_ADC_TO_MV_RES 60
442#define CHARGER30_VIN_ADC_TO_MV(x) ( ( uint16_t ) x * CHARGER30_VIN_ADC_TO_MV_RES )
448#define CHARGER30_VIN_ADC_TO_MV_RES 60
449#define CHARGER30_VIN_ADC_TO_MV(x) ( ( uint16_t ) x * CHARGER30_VIN_ADC_TO_MV_RES )
455#define CHARGER30_ICHG_ADC_TO_MA_RES 17.5
456#define CHARGER30_ICHG_ADC_TO_MA(x) ( x * CHARGER30_ICHG_ADC_TO_MA_RES )
462#define CHARGER30_IIN_ADC_TO_MA_RES 13.3
463#define CHARGER30_IIN_ADC_TO_MA(x) ( x * CHARGER30_IIN_ADC_TO_MA_RES )
469#define CHARGER30_PMS_VINPPM_STAT 0x80
470#define CHARGER30_PMS_IINPPM_STAT 0x40
471#define CHARGER30_PMS_IIN_DPM_MASK 0x3F
472#define CHARGER30_PMS_IIN_DPM_ADC_TO_MA_RES 50
473#define CHARGER30_PMS_IIN_DPM_ADC_TO_MA_OFFSET 100
474#define CHARGER30_PMS_IIN_DPM_ADC_TO_MA(x) ( ( x & CHARGER30_PMS_IIN_DPM_MASK ) * CHARGER30_PMS_IIN_DPM_ADC_TO_MA_RES + \
475 CHARGER30_PMS_IIN_DPM_ADC_TO_MA_OFFSET )
481#define CHARGER30_DM_AICO_STAT 0x80
482#define CHARGER30_DM_VINPPM_INT_DISABLE 0x00
483#define CHARGER30_DM_VINPPM_INT_ENABLE 0x40
484#define CHARGER30_DM_VINPPM_INT_MASK 0x40
485#define CHARGER30_DM_IINPPM_INT_DISABLE 0x00
486#define CHARGER30_DM_IINPPM_INT_ENABLE 0x20
487#define CHARGER30_DM_IINPPM_INT_MASK 0x20
493#define CHARGER30_JC_JEITA_VSET_100MV 0x00
494#define CHARGER30_JC_JEITA_VSET_200MV 0x80
495#define CHARGER30_JC_JEITA_VSET_MASK 0x80
496#define CHARGER30_JC_JEITA_ISET_50PCT 0x00
497#define CHARGER30_JC_JEITA_ISET_16_7PCT 0x40
498#define CHARGER30_JC_JEITA_ISET_MASK 0x40
499#define CHARGER30_JC_VTH_HOT_60C 0x00
500#define CHARGER30_JC_VTH_HOT_55C 0x20
501#define CHARGER30_JC_VTH_HOT_MASK 0x20
502#define CHARGER30_JC_VTH_WARM_40C 0x00
503#define CHARGER30_JC_VTH_WARM_45C 0x08
504#define CHARGER30_JC_VTH_WARM_50C 0x10
505#define CHARGER30_JC_VTH_WARM_55C 0x18
506#define CHARGER30_JC_VTH_WARM_MASK 0x18
507#define CHARGER30_JC_VTH_COOL_0C 0x00
508#define CHARGER30_JC_VTH_COOL_5C 0x02
509#define CHARGER30_JC_VTH_COOL_10C 0x04
510#define CHARGER30_JC_VTH_COOL_15C 0x06
511#define CHARGER30_JC_VTH_COOL_MASK 0x06
512#define CHARGER30_JC_VTH_COLD_0C 0x00
513#define CHARGER30_JC_VTH_COLD_5C 0x01
514#define CHARGER30_JC_VTH_COLD_MASK 0x01
520#define CHARGER30_STSPN_SAFETY_TIMER 0x80
521#define CHARGER30_STSPN_PART_NUMBER 0x00
522#define CHARGER30_STSPN_PART_NUMBER_MASK 0x38
529#define CHARGER30_DEVICE_ADDRESS 0x4B
547#define CHARGER30_MAP_MIKROBUS( cfg, mikrobus ) \
548 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
549 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
550 cfg.ce = MIKROBUS( mikrobus, MIKROBUS_RST ); \
551 cfg.otg = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
552 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
charger30_return_value_t
Charger 30 Click return value data.
Definition charger30.h:619
@ CHARGER30_ERROR
Definition charger30.h:621
@ CHARGER30_OK
Definition charger30.h:620
err_t charger30_init(charger30_t *ctx, charger30_cfg_t *cfg)
Charger 30 initialization function.
err_t charger30_read_regs(charger30_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
Charger 30 read registers function.
err_t charger30_sw_reset(charger30_t *ctx)
Charger 30 software reset function.
void charger30_cfg_setup(charger30_cfg_t *cfg)
Charger 30 configuration object setup function.
err_t charger30_write_reg(charger30_t *ctx, uint8_t reg, uint8_t data_in)
Charger 30 write register function.
void charger30_disable_charging(charger30_t *ctx)
Charger 30 disable charging function.
err_t charger30_write_regs(charger30_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
Charger 30 write registers function.
void charger30_enable_charging(charger30_t *ctx)
Charger 30 enable charging function.
err_t charger30_check_communication(charger30_t *ctx)
Charger 30 check communication function.
void charger30_enable_boost(charger30_t *ctx)
Charger 30 enable boost function.
err_t charger30_read_reg(charger30_t *ctx, uint8_t reg, uint8_t *data_out)
Charger 30 read register function.
err_t charger30_read_status(charger30_t *ctx, charger30_status_t *status)
Charger 30 read status function.
uint8_t charger30_get_int_pin(charger30_t *ctx)
Charger 30 get INT pin function.
err_t charger30_default_cfg(charger30_t *ctx)
Charger 30 default configuration function.
void charger30_disable_boost(charger30_t *ctx)
Charger 30 disable boost function.
Charger 30 Click configuration object.
Definition charger30.h:601
pin_name_t otg
Definition charger30.h:606
uint32_t i2c_speed
Definition charger30.h:609
pin_name_t ce
Definition charger30.h:605
pin_name_t scl
Definition charger30.h:602
pin_name_t int_pin
Definition charger30.h:607
pin_name_t sda
Definition charger30.h:603
uint8_t i2c_address
Definition charger30.h:610
Charger 30 Click status object.
Definition charger30.h:562
uint16_t vbat
Definition charger30.h:565
uint16_t vsys
Definition charger30.h:566
float ntc
Definition charger30.h:567
uint16_t iin_dpm
Definition charger30.h:571
float ichg
Definition charger30.h:569
uint16_t vin
Definition charger30.h:568
float iin
Definition charger30.h:570
uint8_t status
Definition charger30.h:563
uint8_t fault
Definition charger30.h:564
Charger 30 Click context object.
Definition charger30.h:580
digital_in_t int_pin
Definition charger30.h:586
i2c_master_t i2c
Definition charger30.h:589
digital_out_t otg
Definition charger30.h:583
uint8_t slave_address
Definition charger30.h:592
digital_out_t ce
Definition charger30.h:582